home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 19 / Amiga Format CD19 (1997-10-02)(Future Publishing)(GB)(Track 1 of 5)[!][issue 1997-11].iso / -seriously_amiga- / shareware / sound / aprosys / aprosys.doc < prev    next >
Text File  |  1997-08-18  |  21KB  |  677 lines

  1. Format:
  2. - form-feed before a main heading
  3. - two spaces after a main heading
  4. - main heading printed with enlarged horizontal
  5. - two spaces before sub-heading
  6. - one space after sub-heading
  7.  
  8.  
  9.  
  10. - Title page
  11.  
  12. - Copyright
  13. - Persons (Remember file requester)
  14.  
  15.  
  16. wIntroduction
  17. w
  18. - structured way to make music
  19. - user interface called Sios
  20.  
  21.  
  22. wThe User Interface (Sios)
  23. w
  24.  
  25. Load in the program.  You will now see a screen full of numbers
  26. and strange labels.  Press the right mouse button and move the
  27. pointer to the Project-menu.  Then select "Read" and release
  28. the button.  After the directory has loaded, select the file
  29. called "Learning".  You have now loaded a song into your
  30. computer.
  31.  
  32. At the upper right of the screen there are 5 gadgets.  The one
  33. to the far left is used to start and stop the music.  Try it!
  34.  
  35. The 4 other gadgets is used to swap between 4 different
  36. editors.
  37.  
  38.     Preferences                - this has nothing to do with the music
  39.                                   itself.
  40.     Sequence Editor        - here lies the composition.
  41.  
  42.     Sound Editor            - here are all the sounds used in the
  43.                                   composition.
  44.     Waveform    Generator    - this part handles the samples.
  45.  
  46.  
  47. These editors are each divided into different tables. All the
  48. tables have a heading with shortcuts for what the different
  49. fields in the table contain. Most of the tables also have index
  50. numbers at the left, which is used when you refer to a position
  51. in the table. You will see that some of the indexes count {00,
  52. 01, 02, 03...} while others count {00, 04, 08, 0C...}. In the
  53. last case you have to divide the table futher up youself. Here
  54. comes an example:
  55.  
  56.         Arpeggio
  57.     00 c-0 c#1 c-0 c-0        "c#1" is in position 01
  58.     04 c-0 c-0 g-0 c-0        "g-0" is in position 04 + 02 = 06
  59.     08
  60.  
  61. You may move the mouse-pointer inside any of the tables and
  62. press the left mouse button to move the cursor.  The cursor may
  63. also be moved within a table with the arrow-keys.
  64.  
  65. When you start the editor, all tables contains only 1 line.  If
  66. you move the cursor to this line and press RETURN, the line
  67. will be copied, so that you get 2 lines.  To delete a line
  68. press BACKSPACE.
  69.  
  70. Take a look at the text at the bottom of the screen.  This line
  71. always gives you information on what to put in the field where
  72. the cursor is.  Move the cursor to the first field of the
  73. command-table. The info-line will show you:
  74.  
  75.     <S>top, <P>lay, <L>oop ...
  76.  
  77. This means that you can press "S" for "Stop", "P" for "Play"
  78. and so on.  If you select "Play" there will appear two extra
  79. fields in the table, and if you press "F", there will appair a
  80. word instead of numbers.  This is because the last fields have
  81. different meanings when you change the value of the first
  82. field.
  83.  
  84.  
  85. wThe Sequence Editor
  86. w
  87.  
  88. When you enter the program, the sequence editor will appear on
  89. the screen. This consists of four tables:
  90.  
  91.     Commands        - the thin table at the upper left
  92.  
  93.     Mensures        - the wide table at the bottom
  94.  
  95.     Notes            - in the middle of the screen
  96.  
  97.     Arpeggio        - at the top of the screen
  98.  
  99. The note table contains information on what notes to play, what
  100. sounds to use, and some other things. A part of this table
  101. represents the notes in a mensure.
  102.  
  103. In the mensure-table you can combine one part of the note-table
  104. for each voice.  One line of this table represents one mensure
  105. in the finished composition.  (It is sometimes more practical
  106. to let it represent multiple mensures.) In this table, you may
  107. also choose to rise all the notes in the mensure, and you
  108. always have to specify a volume for each voice.
  109.  
  110. The command-table contains a simple program which tells what
  111. order the mensures are going to be be played in.  There are
  112. also some other features here.
  113.  
  114.  
  115. Figur 1.1.1: The connection between commands, mensures and
  116. notes.
  117.  
  118.                 C o m m a n d s
  119.                          |
  120.                          |
  121.                 M e n s u r e s        In each mensure you spesify
  122.                  |   |   |   |            1 part of the note-table for
  123.                  |   |   |   |            each voice.
  124.                    N o t e s
  125.  
  126.  
  127.  
  128. Each note in the note-table have the following format:
  129.  
  130.     C-1 s00v20p00
  131.      1   2  3  4
  132.  
  133. Move the cusor to field 2.  Then press the key above TAB.  The
  134. letter before the numbers will toggle between "s" and "w", and
  135. the info-line will toggle between "Sound" and "Waveform".  This
  136. is because you can choose between modifying two different
  137. settings.  But you can not modify both at the same note.  Field
  138. 3 and 4 uses the same technique.  In this way you can modify 6
  139. settings instead of 3.
  140.  
  141. Now you can move the cursor to the mensure-table. The first two
  142. fields in this table have the info-texts "Speed" and "Size of
  143. block". After these comes 4 columns, all starting with a
  144. note-field. Each column controls ist own voice. I will now give
  145. a closer description of the fields in the two tables.
  146.  
  147.  
  148. "zNote
  149. "z
  150. At the note-field you can use the keys from "z" to "/" and from
  151. "q" to "]" for the basic scale, and use "a" to ";" and "1" to
  152. "\" for halve notes.  If you press SPACE, "---" will appair.
  153. This marks a rest.
  154.  
  155. Every note is related to a value.  Here is the list for the
  156. first two octaves:
  157.  
  158.     Note label        Value                    Note label        Value
  159.     C-0                0                        C-1                12
  160.     C#0                1                        C#1                13
  161.     D-0                2                        D-1                14
  162.     D#0                3                        D#1                15
  163.     E-0                4                        E-1                16
  164.     F-0                5                        F-1                17
  165.     F#0                6                        F#1                18
  166.     G-0                7                        G-1                19
  167.     G#0                8                        G#1                20
  168.     A-0                9                        A-1                21
  169.     A#0                10                        A#1                22
  170.     B-0                11                        B-1                23
  171.  
  172. When the AudioDriver shall determine what note to play, it
  173. first reads the note you have specified in the mensure-table.
  174. Then it adds the value of the note in the note-table.  If you
  175. have spesified D-0 in the note-table, and E-1 in the mensure
  176. table, the result will be F#1.
  177.  
  178.     2    +  16   =  18
  179.     D-0     E-1     F#1
  180.  
  181. When the note in the mensure-table is C-2, all notes in that
  182. mensure will be rised 2 octaves.
  183.  
  184. If you hold SHIFT when you type a note in the note-table, the
  185. note will display in lower-case. If you continue an upper-case
  186. note with lower-case notes, you signal that the same note
  187. continues until a new upper-case note or a "---" is reached.
  188. Here is an example:
  189.  
  190.     D-0 d-0 d-0 d-0 --- --- E-0 e-0 f-0 f-0
  191.  
  192. First comes a D with the length of 4. Then comes a rest of 2.
  193. The last note has the length of 4, and it is an E at the first
  194. half and an F at the second half.
  195.  
  196. There are two term that you will need later:
  197. key-on is from a upper-case note to a "---"
  198. key-off is from a "---" to an upper-case note
  199.  
  200.  
  201. "zSound
  202. "z
  203. The sound which will be played is the sound in the note-table
  204. plus the sound in the mensure-table.  Therefore, if you are not
  205. going to change the sound within a mensure, set the sound in
  206. the note-table to 00, and use only the sound-setting in the
  207. mensure-table.
  208.  
  209.  
  210. "zVolume
  211. "z
  212. The volume in the sound-table will be multiplied with the
  213. volume in the mensure-table. That means you have to write a
  214. non-zero value in both tables, else the volume will be zero.
  215.  
  216.  
  217. "zArpeggio
  218. "z
  219. Arpeggio is a way to make chords on a single voice.  This is
  220. done by rapidly shifting between the notes which normally
  221. should be played simultaneously.  If you for example want to
  222. make a dur-chord and a mol-chord, find a free place in the
  223. arpeggio-table.  If you start on the first line, the table
  224. should show like this:
  225.  
  226.        Arpeggio
  227.     00 C-0 E-0 G-0 00            The last 00 means "jump to 00"
  228.     04 C-0 D#0 G-0 04            and 04 means "jump to 04".
  229.     08
  230.     ...
  231.  
  232. The dur-chord starts at posistion 00 in the table, and it is
  233. represented as C-dur. The mol-chord is represented as a C-mol,
  234. and starts at position 04.
  235.  
  236. To enter the numbers in position 03 and 07, place the cursor on
  237. the field and press BACKQUOTE (the key above the TAB-key).
  238. Press BACKQUOTE another time if you want to enter a note in the
  239. field again.
  240.  
  241. To select one of the arpeggio-chords, you must select arpeggio
  242. in the note table by pressing BACKQUOTE in the last field. The
  243. starting position in the table will be the value in this field
  244. plus the value in the arpeggio field in the mensure-table.
  245.  
  246. Let's say an A-2 is played with our mol-chord in position 04.
  247. The AudioDriver will compute the notes in the following way:
  248.  
  249.     Position in the    Note in        Note calculation        Note
  250.     arpeggio-table        arpeggio                                    played
  251.     04                        c-0            A-2 + C-0 = A-2        A-2
  252.     05                        d#0            A-2 + D#0 = C-2        C-2
  253.     06                        g-0            A-2 + G-0 = E-2        E-2
  254.     07                        00                Jump to position 00
  255.  
  256. The resulting sequence of notes is A-2, C-2, E-2, A-2, C-2...
  257.  
  258. The shifting occurs on each cycle, and there are usually about
  259. 5 cycles between each note in the note-table.
  260.  
  261.  
  262. "zSpeed
  263. "z
  264. There are three places you can control the speed:
  265.  
  266.     - By using the command "Dlay" in the command-table
  267.  
  268.     - In the first field of the mensure-table
  269.  
  270.     - In the note-table
  271.  
  272. These two first settings are multiplied, and the result says
  273. how many cycles there shold be between each note.  Normally
  274. this value is about 5.  To get this value, eigther write 1 in
  275. the command table, and 5 in each line in the mensure-table, or
  276. opposite.
  277.  
  278. It the AudioDriver reaches a speed-setting in the note-table,
  279. then this is used instead of the setting in the mensure-table.
  280.  
  281.  
  282. "zExamples
  283. "z
  284. Note:            C-1 s02v20p00
  285. Mensure:        ... D-1 1030000 ...
  286.  
  287. Gives the note D-2 with the sound 12 (02 + 10). The volume will
  288. be 20 * 30 = 600.
  289.  
  290.  
  291. "zThe command-table
  292. "z
  293. The commands current avaliable are:
  294.  
  295. Play <start> <length>
  296.     Start at position <start> of the mensure-table, and play
  297.     <length> lines.
  298.  
  299. Stop
  300.     Stop playing.
  301.  
  302. Goto <destination>
  303.     Jumps to the position <destination> in the command-table.
  304.  
  305. Loop <destination> <t>
  306.     Jumps to the position <destination> in the command-table
  307.     (<t> - 1) times, then continue to the next line.
  308.  
  309. Note <note>
  310.     Transpose all the following music to <note>.
  311.  
  312. Dlay <delay> <--->
  313.     Change the delay between each note. The final delay will be
  314.     the product of this value and the value in the
  315.     measure-table.
  316.  
  317. LPFl <on/off>
  318.     Turn the lo-pass filter on or off. This will also turn the
  319.     power light on or off. The lo-pass filter filters out
  320.     frequencies above about 5 kHz, to avoid distortion sounds.
  321.     It will not work on the Amiga 1000. You can find more about
  322.     this in the Amiga Hardware Reference Manual.
  323.  
  324. When you load a new composition into memory, some values from
  325. the previous composition may remain in the memory. Therefore, a
  326. composition should always start with these commands:
  327.  
  328.     Dlay xx            Set the speed of the song - another
  329.                         composition may have changed it.
  330.     LPFl On/Off        You can not thrust that the filter always is
  331.                         set to the condition you want.
  332.     Note xxx            ALWAYS include this command in the start, in
  333.                         case another composition has used the Note
  334.                         command. If you do not need to transpose your
  335.                         music, let x be "C-0".
  336.  
  337.  
  338. wThe Sound Editor
  339. w
  340.  
  341. Click on the sounds gadget to enter the Sound Editor. On this
  342. page there are 3 tables:
  343.  
  344.     Envelope            - at the top
  345.  
  346.     Sound                - in the middle
  347.  
  348.     Waveform            - at the bottom
  349.  
  350. The sound-table is the main table here.  Use the index-numbers
  351. at the left side of this table when you spesify a sound in the
  352. mensure- and note-table.
  353.  
  354. A sound is build up from the following:
  355.  
  356.     Vibrators
  357.  
  358.     Period settings
  359.  
  360.     Volume settings
  361.  
  362.     Waveform settings
  363.  
  364.  
  365. The vibrators are used by the three others.
  366.  
  367.  
  368. "zThe Envelope-table
  369. "z
  370. The vibrators needs a source wave. This waveform is formed in
  371. the envelope-table. I will explain this by an example.
  372.  
  373.        TiLev TiLev TiLev TiLev
  374.     00 01+40 04+08 08-10 00 01
  375.     04
  376.  
  377. There are 4 fields in each position of this table. The secound
  378. field is the level of the wave at a spesific point. At position
  379. 00 the level is 40, and in position 2 the level is -10. The
  380. first field of a position is the time it shall take before the
  381. level of the same position is reached. If the table above is
  382. used, the following sequence of events will happen:
  383.  
  384.     Postition    Event
  385.     00                "time" is ignored in the first field, but the
  386.                     level is set to 40.
  387.     01                The level will decrease from 40 (the last level)
  388.                     to 8 (the current level). The time before the
  389.                     level reaches 8 is 4 (the current time)
  390.                     multiplied with the speed of the vibrator (in
  391.                     the sound-table).
  392.     02                The level decreases from 8 to -10. The time for
  393.                     this event is (8 * speed).
  394.     03                When the time is set to 0, the AudioDriver will
  395.                     jump to the position specified under "Lev". In
  396.                     this case it will jump back to position 01.
  397.     01                The level will increase from -10 to 8.
  398.     ...
  399.  
  400.  
  401. "zVibrators
  402. "z
  403. There are 4 vibrators, and all can be used to control boht
  404. period, volue and waveform. Each vibrator consist of the
  405. following:
  406.  
  407.     - The starting position in the envelope-table
  408.  
  409.     - Speed
  410.  
  411. The 4 vibrators differs a bit from each other:
  412.  
  413. Vibrator 0:
  414.     This vibrator contains two starting positions in the
  415.     envelope-table.  The first is used on key-on and the second
  416.     is used on key-off.  This is mostly used to control the
  417.     volue.
  418.  
  419. Vibrator 1:
  420.     You can control the speed of this vibrator by vibrator 2.
  421.     The speed is calculated like this:
  422.  
  423.         speed = offset + rate * vibrator2
  424.  
  425.     If you want a constant speed of this vibrator, specify 00 in
  426.     the rate-field, and use the offset-field as a normal
  427.     speed-field.
  428.  
  429. Vibrator 2:
  430.     The only special about this, is that it can be used to
  431.     control the speed of the previous vibrator.
  432.  
  433. Vibrator 3:
  434.     The position in the envelope-table of this is not resetted
  435.     at each note, but only in the start of a mensure if there is
  436.     an upper-case note in the mensure-table.
  437.  
  438.  
  439. "zPeriod settings
  440. "z
  441. The frequency will change along with the period. If you
  442. increase the period, the frequency will decrease. The period
  443. depends on the note that is played, and on the period settings.
  444.  
  445. The period settings uses 3 vibrators. Under the letters "xyz"
  446. you can specify which of the 4 vibrators mentioned above shall
  447. be used as vibrator x, vibrator y and vibrator z. If you for
  448. example write 3 under "x", the last vibrator will be used as
  449. vibrator x.
  450.  
  451. The value under the label "Ofx" is a constant value that will
  452. be added to the period. The next field, "Rxy", is the rate of
  453. the product vibrator x * vibrator y. If this is set to +00,
  454. vibrator x and vibrator y will have no influence on the period.
  455. The field under "Rz" is the rate of vibrator z. Like above,
  456. this field can be set to +00 to ignore vibrator z.
  457.  
  458. Here is the whole calculation of the period:
  459.  
  460.     period = noteperiod + Ofx + Rxy * vibx * viby + Rz * vibz
  461.  
  462.  
  463. "zVolume settings
  464. "z
  465. The volume is calculated in a similar way as the period, but
  466. here are only 2 vibrators used, vibrator v and vibrator w.
  467.  
  468. The calculation of the volume is:
  469.  
  470.     volume = sequencvolume * (Ofv + Rv * vibv + Rw * vibw)
  471.  
  472. Where sequencevolume is the volume from the note-table and
  473. mensure-table.
  474.  
  475.  
  476. wWaveform
  477. w
  478.  
  479. "zLoading Samples
  480. "z
  481. Before I explain different types of waveforms, you shold load
  482. some samples into the memory. Select the sample-gadget. The
  483. table at the top of the screen keeps a notice of the names of
  484. the samples in the memory, and where they are placed. The last
  485. line always indicates the free memory. To load a new sample,
  486. place the cursor at this line and select "Read Sample" form the
  487. drag-down menu.
  488.  
  489. If the cursor is placed on a sample when you load a new one,
  490. the old sample will be removed, and the new sample will appair
  491. at the bottom of the table. You can also remove a sample by
  492. selecting "Remove Sample" form the drag-down menu.
  493.  
  494.  
  495. "zTypes of waveforms
  496. "z
  497. The AudioDriver provides three types of waveforms:
  498.  
  499.     Sampled sounds
  500.  
  501.     Waveform-swapping
  502.  
  503.     Real-time Waveform Generator
  504.  
  505.  
  506. "zSampled sounds
  507. "z
  508. I will start with the simplest, the sampled sounds. This is
  509. just backplaying of a pre-recorded instrument. When you have
  510. loaded a sample as explained above, you must tell AudioDriver
  511. how you want it to be played. Here are the commands that should
  512. be placed in the waveform-table: (The lower-case letters s and
  513. l represents hexadecimal digits.)
  514.  
  515.     Sng ssssss llll
  516.     Play the waveform form position s to (s + l) in the
  517.     sample-table once.
  518.  
  519.     Rep ssssss llll
  520.     Repeat the waveform from position s to (s + l) in the
  521.     sample-table.
  522.  
  523.     Cnt ssssss llll
  524.     Play the waveform from position s to (s + l) in the
  525.     sample-table one time, and continue with the next waveform.
  526.     The next waveform have to be of the type "Sng" or "Rep".
  527.  
  528.  
  529. "zWaveform-swapping
  530. "z
  531. A more flexible way of backplaying samples is a technique I
  532. call waveform-swapping. By this method you can make samples
  533. longer or shorter than they actually are. The samples will use
  534. the same amount of time at all frequencies, and many will have
  535. almost the same quality as before.
  536.  
  537. How this is done? The sample which is to be played is divided
  538. into equal blocks. By one or two vibrators you can let the
  539. AudioDriver swap between different blocks. If the vibrator
  540. starts at 0 en increases with the rigth speed, you will hear
  541. almost no difference between the two ways of backplaying the
  542. sample.
  543.  
  544.     One ssssss rrll t
  545.     Waveform-swapping with one vibrator. s is the start of the
  546.     sample and l is the length of each block. t is the vibrator
  547.     to use and r is the rate of it.
  548.  
  549.     Two ssssss rrll tu
  550.     Like above, but here are two vibrator which are multiplied.
  551.  
  552.  
  553. "zReal-time Waveform Generator
  554. "z
  555. The last source for the waveform, is the real-time waveform
  556. generator. When using this method, the AudioDriver always plays
  557. the contents of a buffer. The buffer is constantly written to,
  558. so that the waveform changes.
  559.  
  560.     Gen ____ll ____ __
  561.     Generate a waveform of the length l where 0 < l < 41.
  562.  
  563.     Gen 00____ aabb tu
  564.     Pulse with the width (a * vibrator t + b * vibrator u)
  565.  
  566.     Gen 01____ aabb tu
  567.     3-octave pulse. The rate of the lowest octave is (a *
  568.     vibrator t) and the rate of the highest octave is (b *
  569.     vibrator u).
  570.  
  571.     Gen 02____ aabb tu
  572.     Ramp-up wave. The angle of the ramp depends on (a * vibrator
  573.     t + b * vibrator u)
  574.  
  575. The following commands uses samples as their sources. They are
  576. followed by one command that says where the sample data lies.
  577. This can have one of the types "Rep", "One" or "Two".
  578.  
  579.     Gen 10____ ____ __
  580.     The next waveform is copied directly to the buffer.
  581.  
  582.     Gen 11____ ____ __
  583.     The next waveform is added into the buffer.
  584.  
  585.     Gen 12____ ____ __
  586.     The next waveform is multiplied into the buffer.
  587.  
  588.     Gen 1F____ ____ __
  589.     Nothing is done with the buffer.
  590.  
  591. The commands starting with 2 uses two samples as their sources,
  592. and combines these in different ways.
  593.  
  594.     Gen 20____ aabb tu
  595.     The next 2 waveforms is mixed. The rate of the first
  596.     waveform is (a * vibrator t) and the rate of the secound
  597.     waveform is (b * vibrator u).
  598.  
  599.     Gen 2x____ ____ __
  600.     The next two waveforms is combined by a function from the
  601.     following table:
  602.  
  603.     x    Function
  604.     1    +
  605.     2    *
  606.     3    binary AND
  607.     4    binary OR
  608.     5    binary EXCLUSIVE OR
  609.     6    The value from the first waveform is added to the index
  610.         in the sample-table.
  611.  
  612.     Gen __f___ ____ __
  613.     Turn on a filter which is spesified f lines below.
  614.  
  615.  
  616. wKey-functions
  617. w
  618. "zAll fields:
  619. "zRETURN         Insert one line. (Copies the current line.)
  620. BACKSPACE        Delete one line.
  621. CRSR Keys        Move cursor up, down, right or left.
  622. SHIFT-UP            One page up.
  623. SHIFT-DOWN        One page down.
  624. SHIFT-LEFT        One field left.
  625. SHIFT-RIGHT        One field right.
  626. CTRL-UP            Move to start of the current table.
  627. CTRL-DOWN        Move to end of the current table.
  628. Del                Move to previous column.
  629. Help                Move to next column.
  630. BACKQUOTE        Toggle between different functions for the
  631.                     field.
  632.  
  633. F2..F5            Shift between the tables on the current screen.
  634.                     See below.
  635. SHIFT-F2..F5    Shift between the screens. See below.
  636.  
  637.                     ------------------------------------------------
  638.                         SHIFT-F2   SHIFT-F3   SHIFT-F4   SHIFT-F5
  639.                     F2  Pref       Command    Sound      Samplerange
  640.                     F3        -        Measure    Envelope   Sample
  641.                     F4        -        Note       Waveform       -
  642.                     F5        -        Arpeggio        -         -
  643.                     ------------------------------------------------
  644.  
  645. "zCommand-table:
  646. "zF1             Play from current posistion.
  647. SHIFT-F1            Stop playing.
  648.  
  649. "zMeasure-table and note-table:
  650. "zESC            Toggle between the measure-table and the
  651.                     note-table.  When you leave the measure-table,
  652.                     the block-size will be set as if you press
  653.                     RIGHTAMIGA-z.
  654.  
  655. "zNote fields:
  656. "zz../ and q..]  Notes.
  657. a..' and 1..\    Halv Notes.
  658. <note>            Start a new note.
  659. SHIFT-<note>    Continue key-on. (The note continues.)
  660. CTRL-<note>        The note values of all notes is changed, so that
  661.                     <note> gets the value 0.
  662. SPACE                Key-off. (No new note is played.)
  663. TAB                Toggle between upper and lower case notes.
  664. F9                    Shift keyboard one octave down.
  665. F10                Shift keyboard one octave up.
  666. SHIFT-F9            Shift keyboard one note down.
  667. SHIFT-F10        Shift keyboard one note up.
  668. CTRL-F9            Shift lower keyboard one octave down.
  669. CTRL-F10            Shift lower keyboard one octave up.
  670. CTRL-SHIFT-F9    Shift lower keyboard one note down.
  671. CTRL-SHIFT-F10    Shift lower keyboard one note up.
  672.  
  673.  
  674. Figures:
  675.     waveform-swapping
  676.     pulse-width, pulse-octaver, ramp-up
  677.